import { defineStore } from 'pinia'
import { router } from '@/router'

export const useTagsStore = defineStore('tags', {
  state: () => {
    return {
      activateTag: '',
      tags: [],
    }
  },
  actions: {
    setActiveTag(path) {
      this.activateTag = path
    },
    setTags(tags) {
      this.tags = tags
    },
    addTag(tag = {}) {
      if (!tag?.title) return
      this.setActiveTag(tag.path)
      if (this.tags.some((item) => item.path === tag.path)) return
      this.setTags([...this.tags, tag])
    },
    remove(path) {
      // 判断删除的tag是否是当前页面tag
      if (path === this.activateTag) {
        const activateTagIndex = this.tags.findIndex((item) => item.path === path)
        if (activateTagIndex > 0) {
          router.push(this.tags[activateTagIndex - 1].path)
        } else {
          router.push(this.tags[activateTagIndex + 1].path)
        }
      }
      this.setTags(this.tags.filter((tag) => tag.path !== path))
    },
    resetTags() {
      this.setTags([])
      this.setActiveTag('')
    },
  },
})
